// 知识点1：我们可以通过用户来控制模版的实例化，通常有两个原因：

// 1：模版实参作为函数的返回类型，传入的函数实参不能推断出函数的返回类型

// 2：我们希望可以参数指定类型，进行类型转换。

// 知识点2：显式模版实参，位于函数名后，参数列表之前，注意其函数模版实参是按从左至右顺序进行匹配的，之后尾部的参数可以忽略（忽略的前提是可以通过传入的实参进行推断），所以不要将最后的参数作为返回类型，否则需要将所有的模版实参进行显式的初始化

// 知识点3：对于模版实参显示指定了的函数参数，可以进行正常的类型转换

// 虽然max两个实参不同，但是我们可以通过显示的模版实参进行修改，指定了参数之后，传入参数可以不同，但是转换结果必须相同，可以进行类型转换

// max<int>(a,b);//将b的类型强制转换为int